package httpclient

import (
	"fmt"
	"tp-plugin/global"

	"github.com/sirupsen/logrus"
)

type DeviceInfo struct{}

// 从平台获取设备信息并缓存设备ID
func (d DeviceInfo) GetDeviceInfo(MAC string) error {
	if MAC == "" {
		return fmt.Errorf("MAC地址不能为空")
	}
	// 从平台获取设备信息
	rsp, err := GetDeviceConfig("", "", MAC)
	if err != nil {
		return err
	}
	logrus.Info("从平台获取设备信息:", rsp)
	if rsp.Code != 200 {
		return fmt.Errorf("获取设备信息失败")
	}
	// 缓存设备ID
	global.DeviceMACMap[MAC] = rsp.Data.ID
	return nil
}

// 根据MAC获取设备ID
func (d DeviceInfo) GetDeviceIDByMAC(MAC string) (string, error) {
	// 判断设备ID是否已缓存
	if deviceID, ok := global.DeviceMACMap[MAC]; ok {
		return deviceID, nil
	}
	// 从平台获取设备信息并缓存设备ID
	err := d.GetDeviceInfo(MAC)
	if err != nil {
		return "", err
	}
	return global.DeviceMACMap[MAC], nil
}
